package com.headwind.logistics.permission.mapper;

import com.headwind.logistics.permission.dto.MenuRoleDTO;
import com.headwind.logistics.common.pojo.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MenuMapper {
    /**
     * 获取菜单 角色  不使用result方式
     * @param page
     * @param rows
     * @return
     */
    List<MenuRoleDTO> queryMenuRolePage(@Param("page")Integer page,@Param("rows")Integer rows);

    /**
     * 获取菜单 角色  使用result方式
     * @param page
     * @param rows
     * @return
     */
    List<Menu> queryMenuRolePageMap(@Param("page")Integer page,@Param("rows")Integer rows);

    /**
     * 添加角色菜单关联表
     * @param menuId
     * @param roleId
     * @return
     */
    int addMenuRole(@Param("menuId")Long menuId,@Param("roleId")Long roleId);

    /**
     * 删除角色菜单关联表
     * @param menuId
     * @param roleId
     * @return
     */
    int deleteMenuRole(@Param("menuId")Long menuId,@Param("roleId")Long roleId);

    /**
     * 根据角色id查询一级菜单是否存在
     * @param roleId
     * @param menuId
     * @return
     */
    int queryMenuManagerIdByRoleId(@Param("roleId")Long roleId,@Param("menuId")Long menuId);

    /**
     * 根据菜单Id删除菜单
     * @param menuId
     * @return
     */
    Integer deleteMenuByMenuId(Long menuId);

    /**
     * 根据菜单id删除菜单角色关联表
     * @param menuId
     * @return
     */
    Integer deleteMenuRoleByMenuId(Long menuId);

    /**
     * 获取全部菜单
     * @return
     */
    List<Menu> queryAllMenu();

    /**
     * 添加菜单
     * @param menu
     * @return
     */
    Integer addMenu(Menu menu);
}
